package com.nulldev.util.encoding.nHash.hash32;

import com.nulldev.util.encoding.nHash.Hashable;

public class Hash32 implements Hashable<Long> {

	@Override
	public Long hash(final byte[] data) {
		if (data == null || data.length == -1) {
			return -1L;
		}
		long value = 0;
		for (final byte b : data) {
			final int bi = (int) b;
			if (value + bi > Long.MAX_VALUE) {
				value /= 10;
			}
			value += bi;
		}
		return value;
	}

	@Override
	public String hasherID() {
		return "nhash.hash32";
	}

	@Override
	public String[] hashes() {
		return new String[] {"hash32", "Hash32"};
	}

}
